#pragma once
#ifndef __OBJECT_H__
#define __OBJECT_H__
#include "Sprites.h"
#include "GEffect.h"
#include "iostream"
#include "Sound.h"
#include "Infomation.h"

class Object	//Base class for all object
{
protected:
	static unsigned int countObj;
	
public:
	static Infomation* info;		//information of game
	static CEffect* _effect;
	SOUND*		_pSoundManager;		
	CSprites*	_pSprite;			//sprite of object
	RECT*		_pRECT;				//reactange cover object
	int			_hidden;			//nothing_-1,0_Coin,1_HealthMusroom_Flower,2_ExtralifeMusroom,or 3_Star
	int			_typeObj;			// the id of picture
	int			_deltaY;			//move pos Y
	bool		_isUpDown;			//check enemy have jump or fall
	int			_layer;				//layer 
	bool		_isActive;			//active enemy when camera view
	bool		_directory;			//directory left (false) or right (true)
	int			_id;				//the sequent for image
	int			_kind;				//kind of items for group
	int			_status;			//-2: turtle stand in death -1: turtle move fast 0: Stand   1: Jump   2: Die
	virtual void Draw(int VirtualLeft,int Style){}
	virtual int Move(){return 0;};
	virtual void Collision(Object *Ob){};
	virtual void Release(){};
	virtual void ObjGetColliton(int){};
	Object(void);

	~Object(void);
};

#endif